// 导入express 创建路由对象
const express = require('express')
const router = express.Router()

// 导入处理函数
const article_hander = require('../router_hander/article')
// 导入校验规则
const expressJoi = require('@escook/express-joi')
const {
    add_article_schema,
    del_article_schema,
    up_article_schema
} = require('../schema/article')

// 导入解析 formdata 格式表单数据的包
const multer = require('multer')
// 导入处理路径的核心模块
const path = require('path') 

// dest 属性指定文件的存放路径
const upload = multer({dest:path.join(__dirname,'../uploads')})

// upload.single()，用来解析 FormData 格式的表单数据
// 将文件类型的数据，解析并挂载到 req.file 属性中
// 将文本类型的数据，解析并挂载到 req.body 属性中
// 先用multer解析表单数据 再使用expressJoi对解析的数据进行验证
// 'cover_img'为解析之后的文件名字
router.post('/add',upload.single('cover_img'),expressJoi(add_article_schema),article_hander.addArticle)

// 获取文章的列表数据
router.get('/list',article_hander.getArticle)

// 根据 Id 删除文章数据
router.get('/delete/:id',expressJoi(del_article_schema),article_hander.delArticleById)

// 根据 Id 获取文章详情
router.get('/:id',article_hander.getArticleById)

// 根据 Id 更新文章信息
router.post('/edit',upload.single('cover_img'),expressJoi(up_article_schema),article_hander.upArticleByid)

// 向外共享
module.exports = router